# Metasploit
 
## Обзор Проекта

Проект Metasploit был создан в 2003 году HD Moore и стал важным инструментом в области информационной безопасности для написания и использования эксплойтов против удаленных систем.

### История проекта

В 2003 году, хакеру, известному как «HD Moore», пришла в голову идея разработать инструмент для быстрого написания и использования эксплоитов . Так на свет появился известный во всех кругах проект Metasploit project.

Первая версия фреймфорка была написана на языке Perl, содержавшая псевдографический интерфейс на базе библиотеки curses. На тот момент это был просто набор разрозненных эксплойтов и скриптов, общие сведения о которых хранились в единой базе данных. Информация о необходимом окружении для запуска скриптов, как правило, отсутствовала. Также они несли в себе кучу устаревшего кода, требовали модификации жестко прописанных путей для каждого конкретного случая, что весьма затрудняло рабочий процесс и усложняло разработку новых инструментов.

При работе над второй (2.x) версией к HD Moore присоединился Мэтт Миллер и еще несколько добровольцев. Третья версия была полностью переписана на Ruby, её разрабатывала компания Metasploit LLC (основанная вспе теми же разработчиками в 2006 году). Через год в 2008 лицензия Metasploit Framework была сменена с проприетарной на BSD. А еще позднее в 2009 году фирма Rapid7 , занимающаяся управлением уязвимостями, объявила о приобретении Metasploit,  программного пакета двойного назначения для проведения тестов на проникновение . Так же сообщалось, что некоммерческая версия утилиты по-прежнему будет доступна для всех желающих.

С момента приобретения фреймфорка, многое изменилось.
Появились PRO и Community версии, а в 2010 году, в свет вышла более упрощенная версия для «малоквалифицированных» пользователей — Metasploit Express.
Проект Metasploit был создан на языке Perl в 2003 году Эйч Ди Муром (H.D. Moore) при содействии основного разработчика Мэтта Миллера для использования в качестве портативного сетевого инструмента. Он был полностью переведен на язык Ruby к 2007 году, а в 2009 году лицензию приобрела Rapid7, и теперь этот инструмент остается частью ассортимента этой бостонской компании, специализирующейся на разработке систем обнаружения вторжений и инструментов эксплуатации уязвимостей систем удаленного доступа.

Части этих других инструментов находятся в среде Metasploit, которая встроена в ОС Kali Linux. Компания Rapid7 также разработала два запатентованных инструмента OpenCore: Metasploit Pro и Metasploit Express.

Этот фреймворк стал основным инструментом разработки эксплойтов и устранения уязвимостей. До Metasploit пентестерам приходилось выполнять все проверки вручную, используя различные инструменты, которые могли поддерживать или не поддерживать тестируемую платформу, а также вручную писать собственный код и внедрять его в сети. Дистанционное тестирование было чем-то экстраординарным, и это ограничивало работу специалиста по безопасности собственным регионом и местными компаниями, а организациям приходилось тратить целые состояния на собственных ИТ-консультантов или специалистов по безопасности.

### Эволюция Metasploit

- **Первая версия** - Написана на Perl с псевдографическим интерфейсом, основанным на библиотеке curses.
- **Версия 2.x** - Разработка широкой группы участников и улучшенная документация.
- **Версия 3 и далее** - Под управлением Metasploit LLC и полный переход на Ruby.
- **2009 год** - Присоединение к Rapid7 и создание некоммерческой версии.

### Текущие Версии Фреймворка

- **Framework** - Базовая версия с консольным интерфейсом.
- **Community** - С дополнительными возможностями и веб-интерфейсом.
- **Express** - Упрощенное проведение аудитов и отчетности для коммерческих пользователей, включает функционал, позволяющий упростить проведение базовых аудитов и формирование отчетности по ним.
- **Pro** - Расширенные возможности аудита и атак, предоставляет расширенные возможности для проведения атак, позволяет формировать цепочки задач для аудита, составлять подробную отчетность и многое другое.

## Основные Концепции

### 1. База Данных

Рекомендуется использование базы данных PostgreSQL для организации хранения информации.

### 2. Структура Фреймворка

- **Rex Library** - Библиотека общего назначения.
- **MSF Core** - Базовый функционал и API.
- **MSF Base** - API для модулей и плагинов.

### 3. Основные Команды MSFCONSOLE

shell
use
back
show
set
run
info
search
check
sessions


## Базовые понятия

#### 1. База данных

До начала работы с пакетом нужно учесть возможность использования базы дынных, для хранения информации о хостах, сервисах, уязвимостях и прочем. Подключение к базе весьма не обязательное условие для функционирования фреймворка, но тем не менее повышающее удобство использоавния  производительность.

Metasploit использует PostgreSQL, поэтому до начала работы с ним понадобится установить СУБД на свою систему. Затем убедиться, что запущены нужные сервисы БД и фреймворка.

#### 2. Структура фремворка

«Сердце» Metasploit — библиотека **Rex**. Она требуется для операций общего назначения: работы с сокетами, протоколами, форматирования текста, работы с кодировками и подобных. На ней базируется библиотека MSF Core, которая предоставляет базовый функционал и «низкоуровневый» API. Его использует библиотека MSF Base, которая, в свою очередь, предоставляет API для плагинов, интерфейса пользователя (как консольного, так и графического), а также подключаемых модулей.

Все модули делятся на несколько типов, в зависимости от предоставляемой функциональности:

    Exploit — код, эксплуатирующий определенную уязвимость на целевой системе (например, переполнение стека)

    Payload — код, который запускается на целевой системе после того, как отработал эксплойт (устанавливает соединение, выполняет шелл-скрипт и прочее)

    Post — код, который запускается на системе после успешного проникновения (например, собирает пароли, скачивает файлы)

    Encoder — инструменты для обфускации модулей с целью маскировки от антивирусов

    NOP — генераторы NOP’ов. Это ассемблерная инструкция, которая не производит никаких действий. Используется, чтобы заполнять пустоту в исполняемых файлах, для подгонки под необходимый размер

    Auxiliary — модули для сканирования сети, анализа трафика и так далее.

#### 3. Общие команды MSFCONSOLE

Несмотря на наличие графических интерфейсов, самым распространенным способом работы с Metasploit по-прежнему остается консольный интерфейс msfconsole.

Рассмотрим основные команды:

    use — выбрать определенный модуль для работы с ним;
    back — операция, обратная use: перестать работать с выбранным модулем и вернуться назад;
    show — вывести список модулей определенного типа;
    set— установить значение определенному объекту;
    run — запустить вспомогательный модуль после того, как были установлены необходимые опции;
    info — вывести информацию о модуле;
    search — найти определенный модуль;
    check — проверить, подвержена ли целевая система уязвимости;
    sessions — вывести список доступных сессий.

## Кто использует Metasploit?

Благодаря широкому спектру применений и доступному открытому исходному коду Metasploit используется самыми разными людьми, от профессионалов кибербезопасности до хакеров. Metasploit полезен для всех, кому нужен простой в установке и надежный инструмент, выполняющий свою работу независимо от платформы или языка. Это программное обеспечение пользуется популярностью у хакеров и широко доступно, что мотивирует специалистов по безопасности изучать платформу Metasploit, даже если сами они ей не пользуются.

Современная версия Metasploit содержит свыше 1677 эксплойтов для более 25 платформ, включая Android, PHP, Python, Java, Cisco и другие. Фреймворк также содержит около 500 единиц информационного наполнения («пейлоад»), среди которых вы найдёте:

    1. Пейлоады для командной оболочки — позволяют пользователям запускать сценарии или случайные команды на хосте.
    
    2. Динамические пейлады — позволяют тестировщикам генерировать уникальные пейлоады для обхода антивирусного программного обеспечения.
    
    3. Пейлоады Meterpreter — позволяют пользователям перехватывать управление монитором устройства с помощью контроллера видеопамяти, захватывать сеансы, а также скачивать или загружать файлы.
    
    4. Статические пейлоады — позволяют устанавливать переадресацию портов и обмен данными между сетями.

##### Сфера применения и преимущества Metasploit


Все, что нужно для использования Metasploit после его установки, — это получить информацию о цели либо путем сканирования портов, либо путем получения цифрового отпечатка операционной системы, либо с помощью сканера уязвимостей, чтобы найти способ проникнуть в сеть. Затем остается просто выбрать эксплойт и полезную нагрузку. В этом контексте эксплойт — это средство для выявления слабости в вашей сети или системе и использования этой уязвимости для получения доступа.
Платформа состоит из различных моделей и интерфейсов, которые включают: msfconsole на базе библиотеки curses, msfcli для всех функций msf из терминала или командной строки, Armitag — инструмент с графическим интерфейсом на Java, который используется для интеграции с MSF, а также веб-интерфейс сообщества Metasploit, поддерживающий удаленный пентест.

«Белые хакеры» и специалисты по пентесту, пытающиеся определить уязвимости или извлечь уроки из атак киберпреступников, должны понимать, что последние не афишируют своих действий. 
Киберпреступники отличаются скрытностью и любят работать через туннели, таким образом маскируя свой IP-адрес, а многие из них используют выделенный виртуальный сервер, чтобы избежать прерываний, которыми обычно страдают многие провайдеры виртуального хостинга. Эти два инструмента конфиденциальности также будут полезны для «белых хакеров», которые намереваются вступить в мир эксплойтов и пентеста с помощью Metasploit.

Как упоминалось выше, Metasploit предоставляет вам эксплойты, пейлоады, вспомогательные функции, кодировщики, перехватчики, шелл-код, а также послеэксплойтный код и NOP.


#### Как установить Metasploit

Metasploit доступен в виде программы установки с открытым исходным кодом, которую можно скачать с сайта Rapid7. Минимальные системные требования включают наличие последней версии браузера Chrome, Firefox или Explorer, а также

**Операционная система:**

    1. Ubuntu Linux 14.04 или 16.04 LTS (рекомендуется);
    2. Windows Server 2008 или 2012 R2;
    3. Windows 7 SP1+, 8.1 или 10;
    4. Kali Linux 2024.1;
    5. Kali Nethunter 2024.1;
    6. Lineage OS 20+, termux или stryker cli (рекомендуется);
    7. Red Hat Enterprise Linux Server 5.10, 6.5, 7.1 или новее.


**Оборудование:**

    1. Процессор 2 ГГц;
    2. Минимум 4 ГБ ОЗУ (рекомендуется 8ГБ);
    3. Минимум 1 ГБ дискового пространства (рекомендуется 50ГБ).


Перед установкой вам нужно отключить все антивирусные программы и брандмауэры на вашем устройстве и получить права администратора, в случае использования систем на основе android — **root** или **magisk**. 

#### После установки при запуске вы столкнетесь со следующими вариантами:

    1. Cоздание базы данных в /Users/joesmith/.msf4/db;
    2. Запуск Postgresql;
    3. Создание пользователей базы данных;
    4. Создание исходной схемы базы данных.


### Использование Metasploit: 

Легкость изучения **Metasploit** зависит от знания **Ruby**.

Поскольку этот инструмент требует от вас отключения вашей собственной системы защиты и позволяет генерировать вредоносный код, вы должны знать о потенциальных рисках. 
Если возможно, установите эту программу в отдельной системе, а не на вашем личном устройстве или компьютере, содержащем потенциально конфиденциальную информацию или имеющем доступ к такой информации. При пентесте с **Metasploit** вам следует использовать отдельное рабочее устройство.

##### Зачем нужно изучать **Metasploit**

Эта платформа необходима всем аналитикам безопасности или пентестерам. Это важное средство для обнаружения скрытых уязвимостей с помощью различных инструментов и утилит. Metasploit позволяет поставить себя на место хакера и использовать те же методы для разведки и проникновения в сети и серверы.

##### Cхема типичной архитектуры Metasploit:

###### Пошаговая инструкция по Metasploit


